/* -*- C++ -*- */
#ifndef __logic_Quad_Header_File__
#define __logic_Quad_Header_File__


#include "common.h"
#include "core/draw/Texture.h"
#include "core/draw/VertexBuffer.h"
#include "core/coll/AABB.h"

namespace core
{
   class Texture;
}


namespace logic
{
   class Quad
   {
      public:
	 virtual void draw() const;
	 virtual ~Quad();
      protected:
	 core::draw::Texture texture;
	 core::draw::VertexBuffer* vb;
	 core::coll::AABB2<f32> aabb;
	 core::Vector2f position;
   };

   class AnimQuad : public Quad
   {
      public:
	 virtual void draw() const;
	 virtual void update();
	 virtual ~AnimQuad();
      protected:
	 u32 currentFrame;
	 f64 frameStart;
	 f32 fps;
	 f32 frameWidth, frameHeight;
	 core::Vector2f uv1, uv2;
   };
}

#endif // __logic_Quad_Header_File__
